package userlimitModel

import (
	"arabApi/app/api/models"
	"arabApi/pkg/database"
	"arabApi/pkg/helpers"
)

type RoleMenu struct {
	models.BaseModel
	MenuId int64 `db:"menu_id" json:"menu_id"` //  菜单id
	RoleId int64 `db:"role_id" json:"role_id"` //  角色id
	models.CommonTimestampsField
}

func (RoleMenu) TableName() string {
	return "tp_role_menu"
}

func (RoleMenu) RoleMenuAdd(id int64, um []RoleMenu) bool {

	tx := database.DB.Begin()

	ok := tx.Where("role_id = ?", id).Delete(&RoleMenu{})

	ok1 := tx.Model(&RoleMenu{}).Create(um)

	if ok != nil && ok1 != nil {
		tx.Commit()
		return true
	} else {
		tx.Rollback()
		return false
	}
}

func RoleMenu1() []map[string]interface{} {

	var result []map[string]interface{}
	//database.DB.Model(RoleMenu{}).Select("tp_menu.id,tp_menu.menu_name").
	//	Joins("inner join tp_menu on tp_role_menu.menu_id = tp_menu.id").Find(&result)
	database.DB.Model(Menu{}).Find(&result)
	helpers.EchoStr(result)
	return result

}

func RoleMenuName(userId int64) []map[string]interface{} {

	var result []map[string]interface{}
	dd := database.DB.Table("tp_user_role").Debug().Select("tp_role.role_name").Joins("inner join tp_role on tp_user_role.role_id = tp_role.id")
	//var users []UserRole
	dd.Where("user_id = ?", userId).Find(&result)

	return result

}
